// 职责是：负责封装 mysql模块的统一写法，将sql语句和执行完毕以后的操作逻辑作为一个回调函数参数
// 两个参数

function execSql(sql, callback) {
    const mysql = require('mysql');

    let conn = mysql.createConnection({
        host: '127.0.0.1',  // 数据库服务器ip地址，默认是localhost ，可以省略
        port: 3306,  // 数据库服务器软件的端口，默认是3306,可以省略
        user: 'root',
        password: '123456',
        database: 'sy126'
    });

    conn.connect();

    conn.query(sql, (err, result) => {
        if (err) {
            console.log(err);
            return;
        }
        // 这个里面的逻辑有程序开发者来进行自定义编写，所以
        callback(result);  // 由于callback是在调用execSql这个方法的时候才确定的，所以此时不知道方法体是什么也没有关系
    });

    conn.end();
}

// 导出query方法
module.exports = execSql;

// execSql('select * from student', (result) => {
//     console.log(result);
// })

// execSql('select * from student', (result) => {
//     fs.writeFileSync('data.json', JSON.stringify(result))
// })